{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7c6efbcc",
   "metadata": {},
   "source": [
    "# face++ 人脸检测/face detect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "9f0aec4a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1.导入需要的requests模块\n",
    "import requests\n",
    "\n",
    "# 2.输入我们需要API（face++）网站注册的API_Key\\Secret\n",
    "\n",
    "API_Key = \"p1trKNavnFo86_pKDl5eiY2Z5Nhz_7SF\"\n",
    "API_Secret = \"5YkQz9wSFR35_tmY1uQQoH1luj8ceD-n\"\n",
    "\n",
    "# 3.准备base URL(face detect) API测试接口的url\n",
    "base_url = \"https://api-cn.faceplusplus.com/facepp/v3/detect\"\n",
    "\n",
    "# 4.请求方法：POST\n",
    "\n",
    "# 5.准备请求参数：payload\n",
    "payload = {\n",
    "    \"api_key\":API_Key,\n",
    "    \"api_secret\":API_Secret,\n",
    "    \"image_url\":\"https://i0.hdslb.com/bfs/article/eec00424db25727d11a33dd7ebc6fa99d88e0d4a.jpg\",\n",
    "    \"return_landmark\":1,\n",
    "    \"return_attributes\":\"gender,age,smiling\"\n",
    "\n",
    "}\n",
    "# 6.请求数据\n",
    "\n",
    "r = requests.post(base_url,payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "16c09993",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "37ad7172",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648221716,fd4e61bc-8e20-419e-9967-5946017af9c9',\n",
       " 'time_used': 560,\n",
       " 'faces': [{'face_token': '8c5a7bb6fa7ba70a3f86a100a44b919f',\n",
       "   'face_rectangle': {'top': 174, 'left': 135, 'width': 80, 'height': 80},\n",
       "   'landmark': {'contour_chin': {'x': 176, 'y': 255},\n",
       "    'contour_left1': {'x': 141, 'y': 182},\n",
       "    'contour_left2': {'x': 139, 'y': 192},\n",
       "    'contour_left3': {'x': 138, 'y': 202},\n",
       "    'contour_left4': {'x': 138, 'y': 212},\n",
       "    'contour_left5': {'x': 140, 'y': 221},\n",
       "    'contour_left6': {'x': 144, 'y': 230},\n",
       "    'contour_left7': {'x': 149, 'y': 239},\n",
       "    'contour_left8': {'x': 156, 'y': 246},\n",
       "    'contour_left9': {'x': 165, 'y': 253},\n",
       "    'contour_right1': {'x': 219, 'y': 198},\n",
       "    'contour_right2': {'x': 218, 'y': 206},\n",
       "    'contour_right3': {'x': 216, 'y': 214},\n",
       "    'contour_right4': {'x': 213, 'y': 222},\n",
       "    'contour_right5': {'x': 208, 'y': 229},\n",
       "    'contour_right6': {'x': 202, 'y': 235},\n",
       "    'contour_right7': {'x': 196, 'y': 241},\n",
       "    'contour_right8': {'x': 190, 'y': 247},\n",
       "    'contour_right9': {'x': 184, 'y': 253},\n",
       "    'left_eye_bottom': {'x': 173, 'y': 191},\n",
       "    'left_eye_center': {'x': 174, 'y': 189},\n",
       "    'left_eye_left_corner': {'x': 165, 'y': 187},\n",
       "    'left_eye_lower_left_quarter': {'x': 169, 'y': 189},\n",
       "    'left_eye_lower_right_quarter': {'x': 178, 'y': 191},\n",
       "    'left_eye_pupil': {'x': 172, 'y': 187},\n",
       "    'left_eye_right_corner': {'x': 182, 'y': 192},\n",
       "    'left_eye_top': {'x': 175, 'y': 185},\n",
       "    'left_eye_upper_left_quarter': {'x': 170, 'y': 185},\n",
       "    'left_eye_upper_right_quarter': {'x': 179, 'y': 188},\n",
       "    'left_eyebrow_left_corner': {'x': 161, 'y': 176},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 169, 'y': 178},\n",
       "    'left_eyebrow_lower_middle': {'x': 176, 'y': 180},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 184, 'y': 182},\n",
       "    'left_eyebrow_right_corner': {'x': 191, 'y': 184},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 169, 'y': 173},\n",
       "    'left_eyebrow_upper_middle': {'x': 178, 'y': 175},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 186, 'y': 178},\n",
       "    'mouth_left_corner': {'x': 166, 'y': 225},\n",
       "    'mouth_lower_lip_bottom': {'x': 183, 'y': 238},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 176, 'y': 229},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 171, 'y': 231},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 176, 'y': 235},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 190, 'y': 232},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 192, 'y': 235},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 188, 'y': 237},\n",
       "    'mouth_lower_lip_top': {'x': 185, 'y': 232},\n",
       "    'mouth_right_corner': {'x': 194, 'y': 231},\n",
       "    'mouth_upper_lip_bottom': {'x': 185, 'y': 232},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 183, 'y': 227},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 175, 'y': 226},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 176, 'y': 229},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 189, 'y': 229},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 192, 'y': 230},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 190, 'y': 232},\n",
       "    'mouth_upper_lip_top': {'x': 186, 'y': 229},\n",
       "    'nose_contour_left1': {'x': 188, 'y': 193},\n",
       "    'nose_contour_left2': {'x': 182, 'y': 209},\n",
       "    'nose_contour_left3': {'x': 183, 'y': 219},\n",
       "    'nose_contour_lower_middle': {'x': 189, 'y': 222},\n",
       "    'nose_contour_right1': {'x': 199, 'y': 196},\n",
       "    'nose_contour_right2': {'x': 198, 'y': 213},\n",
       "    'nose_contour_right3': {'x': 194, 'y': 221},\n",
       "    'nose_left': {'x': 178, 'y': 215},\n",
       "    'nose_right': {'x': 198, 'y': 219},\n",
       "    'nose_tip': {'x': 192, 'y': 217},\n",
       "    'right_eye_bottom': {'x': 209, 'y': 198},\n",
       "    'right_eye_center': {'x': 209, 'y': 196},\n",
       "    'right_eye_left_corner': {'x': 202, 'y': 196},\n",
       "    'right_eye_lower_left_quarter': {'x': 205, 'y': 197},\n",
       "    'right_eye_lower_right_quarter': {'x': 212, 'y': 198},\n",
       "    'right_eye_pupil': {'x': 206, 'y': 195},\n",
       "    'right_eye_right_corner': {'x': 215, 'y': 197},\n",
       "    'right_eye_top': {'x': 209, 'y': 193},\n",
       "    'right_eye_upper_left_quarter': {'x': 205, 'y': 194},\n",
       "    'right_eye_upper_right_quarter': {'x': 213, 'y': 194},\n",
       "    'right_eyebrow_left_corner': {'x': 204, 'y': 187},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 208, 'y': 188},\n",
       "    'right_eyebrow_lower_middle': {'x': 213, 'y': 188},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 216, 'y': 188},\n",
       "    'right_eyebrow_right_corner': {'x': 220, 'y': 189},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 208, 'y': 184},\n",
       "    'right_eyebrow_upper_middle': {'x': 213, 'y': 184},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 217, 'y': 185}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 22},\n",
       "    'smile': {'value': 97.828, 'threshold': 50.0}}},\n",
       "  {'face_token': '85efa54f59e74b25cfc9414c3901cec9',\n",
       "   'face_rectangle': {'top': 208, 'left': 831, 'width': 80, 'height': 80},\n",
       "   'landmark': {'contour_chin': {'x': 848, 'y': 280},\n",
       "    'contour_left1': {'x': 844, 'y': 209},\n",
       "    'contour_left2': {'x': 840, 'y': 217},\n",
       "    'contour_left3': {'x': 837, 'y': 224},\n",
       "    'contour_left4': {'x': 835, 'y': 232},\n",
       "    'contour_left5': {'x': 835, 'y': 241},\n",
       "    'contour_left6': {'x': 836, 'y': 249},\n",
       "    'contour_left7': {'x': 837, 'y': 257},\n",
       "    'contour_left8': {'x': 839, 'y': 266},\n",
       "    'contour_left9': {'x': 842, 'y': 274},\n",
       "    'contour_right1': {'x': 917, 'y': 238},\n",
       "    'contour_right2': {'x': 914, 'y': 247},\n",
       "    'contour_right3': {'x': 910, 'y': 256},\n",
       "    'contour_right4': {'x': 905, 'y': 265},\n",
       "    'contour_right5': {'x': 898, 'y': 273},\n",
       "    'contour_right6': {'x': 890, 'y': 278},\n",
       "    'contour_right7': {'x': 880, 'y': 282},\n",
       "    'contour_right8': {'x': 870, 'y': 283},\n",
       "    'contour_right9': {'x': 859, 'y': 283},\n",
       "    'left_eye_bottom': {'x': 855, 'y': 215},\n",
       "    'left_eye_center': {'x': 856, 'y': 214},\n",
       "    'left_eye_left_corner': {'x': 850, 'y': 211},\n",
       "    'left_eye_lower_left_quarter': {'x': 853, 'y': 213},\n",
       "    'left_eye_lower_right_quarter': {'x': 859, 'y': 216},\n",
       "    'left_eye_pupil': {'x': 858, 'y': 214},\n",
       "    'left_eye_right_corner': {'x': 862, 'y': 217},\n",
       "    'left_eye_top': {'x': 858, 'y': 211},\n",
       "    'left_eye_upper_left_quarter': {'x': 854, 'y': 210},\n",
       "    'left_eye_upper_right_quarter': {'x': 861, 'y': 213},\n",
       "    'left_eyebrow_left_corner': {'x': 849, 'y': 205},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 853, 'y': 205},\n",
       "    'left_eyebrow_lower_middle': {'x': 858, 'y': 207},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 862, 'y': 208},\n",
       "    'left_eyebrow_right_corner': {'x': 866, 'y': 210},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 854, 'y': 202},\n",
       "    'left_eyebrow_upper_middle': {'x': 859, 'y': 202},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 864, 'y': 205},\n",
       "    'mouth_left_corner': {'x': 846, 'y': 247},\n",
       "    'mouth_lower_lip_bottom': {'x': 856, 'y': 264},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 851, 'y': 254},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 847, 'y': 253},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 850, 'y': 259},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 868, 'y': 261},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 872, 'y': 264},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 864, 'y': 265},\n",
       "    'mouth_lower_lip_top': {'x': 857, 'y': 258},\n",
       "    'mouth_right_corner': {'x': 879, 'y': 260},\n",
       "    'mouth_upper_lip_bottom': {'x': 859, 'y': 255},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 856, 'y': 251},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 851, 'y': 249},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 852, 'y': 251},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 863, 'y': 253},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 871, 'y': 257},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 868, 'y': 258},\n",
       "    'mouth_upper_lip_top': {'x': 859, 'y': 253},\n",
       "    'nose_contour_left1': {'x': 866, 'y': 218},\n",
       "    'nose_contour_left2': {'x': 857, 'y': 233},\n",
       "    'nose_contour_left3': {'x': 855, 'y': 242},\n",
       "    'nose_contour_lower_middle': {'x': 859, 'y': 246},\n",
       "    'nose_contour_right1': {'x': 877, 'y': 223},\n",
       "    'nose_contour_right2': {'x': 873, 'y': 239},\n",
       "    'nose_contour_right3': {'x': 866, 'y': 247},\n",
       "    'nose_left': {'x': 853, 'y': 237},\n",
       "    'nose_right': {'x': 873, 'y': 247},\n",
       "    'nose_tip': {'x': 859, 'y': 240},\n",
       "    'right_eye_bottom': {'x': 890, 'y': 229},\n",
       "    'right_eye_center': {'x': 890, 'y': 227},\n",
       "    'right_eye_left_corner': {'x': 882, 'y': 225},\n",
       "    'right_eye_lower_left_quarter': {'x': 886, 'y': 227},\n",
       "    'right_eye_lower_right_quarter': {'x': 894, 'y': 229},\n",
       "    'right_eye_pupil': {'x': 892, 'y': 227},\n",
       "    'right_eye_right_corner': {'x': 898, 'y': 230},\n",
       "    'right_eye_top': {'x': 891, 'y': 224},\n",
       "    'right_eye_upper_left_quarter': {'x': 886, 'y': 224},\n",
       "    'right_eye_upper_right_quarter': {'x': 895, 'y': 226},\n",
       "    'right_eyebrow_left_corner': {'x': 881, 'y': 218},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 887, 'y': 219},\n",
       "    'right_eyebrow_lower_middle': {'x': 894, 'y': 221},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 900, 'y': 223},\n",
       "    'right_eyebrow_right_corner': {'x': 906, 'y': 226},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 888, 'y': 215},\n",
       "    'right_eyebrow_upper_middle': {'x': 895, 'y': 217},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 902, 'y': 220}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 33},\n",
       "    'smile': {'value': 100.0, 'threshold': 50.0}}},\n",
       "  {'face_token': '3b18b2b2468c8918cbb915bbf48d4f3c',\n",
       "   'face_rectangle': {'top': 204, 'left': 511, 'width': 79, 'height': 79},\n",
       "   'landmark': {'contour_chin': {'x': 539, 'y': 283},\n",
       "    'contour_left1': {'x': 518, 'y': 221},\n",
       "    'contour_left2': {'x': 516, 'y': 228},\n",
       "    'contour_left3': {'x': 515, 'y': 236},\n",
       "    'contour_left4': {'x': 516, 'y': 244},\n",
       "    'contour_left5': {'x': 517, 'y': 252},\n",
       "    'contour_left6': {'x': 519, 'y': 259},\n",
       "    'contour_left7': {'x': 522, 'y': 266},\n",
       "    'contour_left8': {'x': 526, 'y': 273},\n",
       "    'contour_left9': {'x': 531, 'y': 279},\n",
       "    'contour_right1': {'x': 586, 'y': 223},\n",
       "    'contour_right2': {'x': 586, 'y': 232},\n",
       "    'contour_right3': {'x': 585, 'y': 242},\n",
       "    'contour_right4': {'x': 584, 'y': 251},\n",
       "    'contour_right5': {'x': 581, 'y': 260},\n",
       "    'contour_right6': {'x': 575, 'y': 268},\n",
       "    'contour_right7': {'x': 568, 'y': 274},\n",
       "    'contour_right8': {'x': 559, 'y': 279},\n",
       "    'contour_right9': {'x': 549, 'y': 282},\n",
       "    'left_eye_bottom': {'x': 527, 'y': 221},\n",
       "    'left_eye_center': {'x': 528, 'y': 219},\n",
       "    'left_eye_left_corner': {'x': 521, 'y': 219},\n",
       "    'left_eye_lower_left_quarter': {'x': 524, 'y': 220},\n",
       "    'left_eye_lower_right_quarter': {'x': 531, 'y': 221},\n",
       "    'left_eye_pupil': {'x': 529, 'y': 218},\n",
       "    'left_eye_right_corner': {'x': 534, 'y': 220},\n",
       "    'left_eye_top': {'x': 527, 'y': 216},\n",
       "    'left_eye_upper_left_quarter': {'x': 524, 'y': 217},\n",
       "    'left_eye_upper_right_quarter': {'x': 531, 'y': 217},\n",
       "    'left_eyebrow_left_corner': {'x': 520, 'y': 208},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 523, 'y': 208},\n",
       "    'left_eyebrow_lower_middle': {'x': 527, 'y': 208},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 531, 'y': 209},\n",
       "    'left_eyebrow_right_corner': {'x': 536, 'y': 209},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 522, 'y': 204},\n",
       "    'left_eyebrow_upper_middle': {'x': 527, 'y': 204},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 532, 'y': 205},\n",
       "    'mouth_left_corner': {'x': 529, 'y': 252},\n",
       "    'mouth_lower_lip_bottom': {'x': 541, 'y': 264},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 534, 'y': 257},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 531, 'y': 257},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 535, 'y': 262},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 551, 'y': 258},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 556, 'y': 259},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 549, 'y': 263},\n",
       "    'mouth_lower_lip_top': {'x': 541, 'y': 259},\n",
       "    'mouth_right_corner': {'x': 560, 'y': 253},\n",
       "    'mouth_upper_lip_bottom': {'x': 541, 'y': 252},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 537, 'y': 249},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 532, 'y': 250},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 534, 'y': 252},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 544, 'y': 250},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 552, 'y': 251},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 550, 'y': 252},\n",
       "    'mouth_upper_lip_top': {'x': 541, 'y': 250},\n",
       "    'nose_contour_left1': {'x': 538, 'y': 221},\n",
       "    'nose_contour_left2': {'x': 534, 'y': 234},\n",
       "    'nose_contour_left3': {'x': 536, 'y': 241},\n",
       "    'nose_contour_lower_middle': {'x': 540, 'y': 243},\n",
       "    'nose_contour_right1': {'x': 547, 'y': 221},\n",
       "    'nose_contour_right2': {'x': 548, 'y': 235},\n",
       "    'nose_contour_right3': {'x': 545, 'y': 242},\n",
       "    'nose_left': {'x': 532, 'y': 239},\n",
       "    'nose_right': {'x': 550, 'y': 240},\n",
       "    'nose_tip': {'x': 539, 'y': 237},\n",
       "    'right_eye_bottom': {'x': 561, 'y': 222},\n",
       "    'right_eye_center': {'x': 561, 'y': 220},\n",
       "    'right_eye_left_corner': {'x': 553, 'y': 221},\n",
       "    'right_eye_lower_left_quarter': {'x': 557, 'y': 221},\n",
       "    'right_eye_lower_right_quarter': {'x': 565, 'y': 221},\n",
       "    'right_eye_pupil': {'x': 562, 'y': 219},\n",
       "    'right_eye_right_corner': {'x': 569, 'y': 221},\n",
       "    'right_eye_top': {'x': 561, 'y': 217},\n",
       "    'right_eye_upper_left_quarter': {'x': 557, 'y': 218},\n",
       "    'right_eye_upper_right_quarter': {'x': 565, 'y': 218},\n",
       "    'right_eyebrow_left_corner': {'x': 549, 'y': 209},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 556, 'y': 210},\n",
       "    'right_eyebrow_lower_middle': {'x': 563, 'y': 210},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 569, 'y': 210},\n",
       "    'right_eyebrow_right_corner': {'x': 575, 'y': 211},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 556, 'y': 205},\n",
       "    'right_eyebrow_upper_middle': {'x': 563, 'y': 205},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 570, 'y': 206}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 23},\n",
       "    'smile': {'value': 100.0, 'threshold': 50.0}}},\n",
       "  {'face_token': '004ed39b48d67d121710a0ff60fc3437',\n",
       "   'face_rectangle': {'top': 186, 'left': 691, 'width': 79, 'height': 79},\n",
       "   'landmark': {'contour_chin': {'x': 726, 'y': 266},\n",
       "    'contour_left1': {'x': 689, 'y': 210},\n",
       "    'contour_left2': {'x': 689, 'y': 218},\n",
       "    'contour_left3': {'x': 690, 'y': 225},\n",
       "    'contour_left4': {'x': 693, 'y': 233},\n",
       "    'contour_left5': {'x': 697, 'y': 239},\n",
       "    'contour_left6': {'x': 701, 'y': 246},\n",
       "    'contour_left7': {'x': 707, 'y': 252},\n",
       "    'contour_left8': {'x': 712, 'y': 257},\n",
       "    'contour_left9': {'x': 717, 'y': 263},\n",
       "    'contour_right1': {'x': 765, 'y': 196},\n",
       "    'contour_right2': {'x': 767, 'y': 206},\n",
       "    'contour_right3': {'x': 768, 'y': 216},\n",
       "    'contour_right4': {'x': 768, 'y': 226},\n",
       "    'contour_right5': {'x': 766, 'y': 235},\n",
       "    'contour_right6': {'x': 762, 'y': 244},\n",
       "    'contour_right7': {'x': 755, 'y': 252},\n",
       "    'contour_right8': {'x': 746, 'y': 258},\n",
       "    'contour_right9': {'x': 737, 'y': 264},\n",
       "    'left_eye_bottom': {'x': 700, 'y': 210},\n",
       "    'left_eye_center': {'x': 700, 'y': 208},\n",
       "    'left_eye_left_corner': {'x': 693, 'y': 209},\n",
       "    'left_eye_lower_left_quarter': {'x': 696, 'y': 210},\n",
       "    'left_eye_lower_right_quarter': {'x': 703, 'y': 210},\n",
       "    'left_eye_pupil': {'x': 702, 'y': 207},\n",
       "    'left_eye_right_corner': {'x': 707, 'y': 209},\n",
       "    'left_eye_top': {'x': 699, 'y': 205},\n",
       "    'left_eye_upper_left_quarter': {'x': 696, 'y': 206},\n",
       "    'left_eye_upper_right_quarter': {'x': 704, 'y': 206},\n",
       "    'left_eyebrow_left_corner': {'x': 688, 'y': 199},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 691, 'y': 199},\n",
       "    'left_eyebrow_lower_middle': {'x': 695, 'y': 198},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 700, 'y': 198},\n",
       "    'left_eyebrow_right_corner': {'x': 704, 'y': 197},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 690, 'y': 195},\n",
       "    'left_eyebrow_upper_middle': {'x': 695, 'y': 194},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 700, 'y': 195},\n",
       "    'mouth_left_corner': {'x': 711, 'y': 241},\n",
       "    'mouth_lower_lip_bottom': {'x': 722, 'y': 250},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 716, 'y': 244},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 713, 'y': 245},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 717, 'y': 249},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 731, 'y': 243},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 735, 'y': 244},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 730, 'y': 248},\n",
       "    'mouth_lower_lip_top': {'x': 722, 'y': 246},\n",
       "    'mouth_right_corner': {'x': 739, 'y': 238},\n",
       "    'mouth_upper_lip_bottom': {'x': 721, 'y': 242},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 718, 'y': 240},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 714, 'y': 240},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 715, 'y': 241},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 723, 'y': 239},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 731, 'y': 239},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 730, 'y': 240},\n",
       "    'mouth_upper_lip_top': {'x': 720, 'y': 240},\n",
       "    'nose_contour_left1': {'x': 710, 'y': 208},\n",
       "    'nose_contour_left2': {'x': 710, 'y': 223},\n",
       "    'nose_contour_left3': {'x': 713, 'y': 232},\n",
       "    'nose_contour_lower_middle': {'x': 718, 'y': 233},\n",
       "    'nose_contour_right1': {'x': 720, 'y': 206},\n",
       "    'nose_contour_right2': {'x': 725, 'y': 221},\n",
       "    'nose_contour_right3': {'x': 724, 'y': 230},\n",
       "    'nose_left': {'x': 708, 'y': 229},\n",
       "    'nose_right': {'x': 729, 'y': 227},\n",
       "    'nose_tip': {'x': 715, 'y': 227},\n",
       "    'right_eye_bottom': {'x': 734, 'y': 204},\n",
       "    'right_eye_center': {'x': 733, 'y': 202},\n",
       "    'right_eye_left_corner': {'x': 725, 'y': 205},\n",
       "    'right_eye_lower_left_quarter': {'x': 729, 'y': 205},\n",
       "    'right_eye_lower_right_quarter': {'x': 738, 'y': 202},\n",
       "    'right_eye_pupil': {'x': 734, 'y': 201},\n",
       "    'right_eye_right_corner': {'x': 742, 'y': 200},\n",
       "    'right_eye_top': {'x': 732, 'y': 198},\n",
       "    'right_eye_upper_left_quarter': {'x': 728, 'y': 201},\n",
       "    'right_eye_upper_right_quarter': {'x': 737, 'y': 198},\n",
       "    'right_eyebrow_left_corner': {'x': 719, 'y': 195},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 726, 'y': 194},\n",
       "    'right_eyebrow_lower_middle': {'x': 733, 'y': 191},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 740, 'y': 190},\n",
       "    'right_eyebrow_right_corner': {'x': 747, 'y': 191},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 725, 'y': 189},\n",
       "    'right_eyebrow_upper_middle': {'x': 732, 'y': 187},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 740, 'y': 186}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 26},\n",
       "    'smile': {'value': 99.49, 'threshold': 50.0}}},\n",
       "  {'face_token': 'ad2465b3750e3ba68f9ed11f9a73a81e',\n",
       "   'face_rectangle': {'top': 209, 'left': 326, 'width': 78, 'height': 78},\n",
       "   'landmark': {'contour_chin': {'x': 378, 'y': 285},\n",
       "    'contour_left1': {'x': 324, 'y': 227},\n",
       "    'contour_left2': {'x': 325, 'y': 236},\n",
       "    'contour_left3': {'x': 327, 'y': 245},\n",
       "    'contour_left4': {'x': 330, 'y': 255},\n",
       "    'contour_left5': {'x': 334, 'y': 263},\n",
       "    'contour_left6': {'x': 340, 'y': 271},\n",
       "    'contour_left7': {'x': 348, 'y': 277},\n",
       "    'contour_left8': {'x': 357, 'y': 282},\n",
       "    'contour_left9': {'x': 367, 'y': 285},\n",
       "    'contour_right1': {'x': 401, 'y': 221},\n",
       "    'contour_right2': {'x': 402, 'y': 229},\n",
       "    'contour_right3': {'x': 403, 'y': 236},\n",
       "    'contour_right4': {'x': 402, 'y': 244},\n",
       "    'contour_right5': {'x': 401, 'y': 252},\n",
       "    'contour_right6': {'x': 398, 'y': 260},\n",
       "    'contour_right7': {'x': 394, 'y': 267},\n",
       "    'contour_right8': {'x': 390, 'y': 274},\n",
       "    'contour_right9': {'x': 386, 'y': 280},\n",
       "    'left_eye_bottom': {'x': 352, 'y': 226},\n",
       "    'left_eye_center': {'x': 353, 'y': 224},\n",
       "    'left_eye_left_corner': {'x': 345, 'y': 225},\n",
       "    'left_eye_lower_left_quarter': {'x': 348, 'y': 226},\n",
       "    'left_eye_lower_right_quarter': {'x': 357, 'y': 226},\n",
       "    'left_eye_pupil': {'x': 351, 'y': 223},\n",
       "    'left_eye_right_corner': {'x': 361, 'y': 225},\n",
       "    'left_eye_top': {'x': 353, 'y': 221},\n",
       "    'left_eye_upper_left_quarter': {'x': 348, 'y': 222},\n",
       "    'left_eye_upper_right_quarter': {'x': 357, 'y': 222},\n",
       "    'left_eyebrow_left_corner': {'x': 337, 'y': 219},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 344, 'y': 217},\n",
       "    'left_eyebrow_lower_middle': {'x': 351, 'y': 216},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 358, 'y': 216},\n",
       "    'left_eyebrow_right_corner': {'x': 365, 'y': 215},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 344, 'y': 213},\n",
       "    'left_eyebrow_upper_middle': {'x': 351, 'y': 211},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 359, 'y': 211},\n",
       "    'mouth_left_corner': {'x': 355, 'y': 259},\n",
       "    'mouth_lower_lip_bottom': {'x': 375, 'y': 269},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 365, 'y': 263},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 360, 'y': 264},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 367, 'y': 268},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 383, 'y': 260},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 386, 'y': 261},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 382, 'y': 266},\n",
       "    'mouth_lower_lip_top': {'x': 375, 'y': 263},\n",
       "    'mouth_right_corner': {'x': 388, 'y': 255},\n",
       "    'mouth_upper_lip_bottom': {'x': 375, 'y': 258},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 372, 'y': 256},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 364, 'y': 257},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 365, 'y': 259},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 378, 'y': 255},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 384, 'y': 255},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 382, 'y': 257},\n",
       "    'mouth_upper_lip_top': {'x': 375, 'y': 256},\n",
       "    'nose_contour_left1': {'x': 366, 'y': 225},\n",
       "    'nose_contour_left2': {'x': 366, 'y': 240},\n",
       "    'nose_contour_left3': {'x': 370, 'y': 249},\n",
       "    'nose_contour_lower_middle': {'x': 376, 'y': 250},\n",
       "    'nose_contour_right1': {'x': 378, 'y': 224},\n",
       "    'nose_contour_right2': {'x': 382, 'y': 239},\n",
       "    'nose_contour_right3': {'x': 381, 'y': 247},\n",
       "    'nose_left': {'x': 364, 'y': 246},\n",
       "    'nose_right': {'x': 384, 'y': 244},\n",
       "    'nose_tip': {'x': 376, 'y': 244},\n",
       "    'right_eye_bottom': {'x': 389, 'y': 223},\n",
       "    'right_eye_center': {'x': 389, 'y': 221},\n",
       "    'right_eye_left_corner': {'x': 381, 'y': 223},\n",
       "    'right_eye_lower_left_quarter': {'x': 385, 'y': 223},\n",
       "    'right_eye_lower_right_quarter': {'x': 393, 'y': 222},\n",
       "    'right_eye_pupil': {'x': 387, 'y': 221},\n",
       "    'right_eye_right_corner': {'x': 396, 'y': 221},\n",
       "    'right_eye_top': {'x': 388, 'y': 218},\n",
       "    'right_eye_upper_left_quarter': {'x': 384, 'y': 220},\n",
       "    'right_eye_upper_right_quarter': {'x': 393, 'y': 218},\n",
       "    'right_eyebrow_left_corner': {'x': 378, 'y': 215},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 384, 'y': 214},\n",
       "    'right_eyebrow_lower_middle': {'x': 389, 'y': 212},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 394, 'y': 212},\n",
       "    'right_eyebrow_right_corner': {'x': 399, 'y': 213},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 382, 'y': 210},\n",
       "    'right_eyebrow_upper_middle': {'x': 389, 'y': 208},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 395, 'y': 209}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 24},\n",
       "    'smile': {'value': 100.0, 'threshold': 50.0}}}],\n",
       " 'image_id': 'd5c9PtbmX/SxMayu5Scqqg==',\n",
       " 'face_num': 5}"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3bc49578",
   "metadata": {},
   "source": [
    "# 人脸分析 API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "c3abbd3c",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1.导入需要的requests模块\n",
    "import requests\n",
    "\n",
    "# 2.输入我们需要API（face++）网站注册的API_Key\\Secret\n",
    "\n",
    "API_Key = \"p1trKNavnFo86_pKDl5eiY2Z5Nhz_7SF\"\n",
    "API_Secret = \"5YkQz9wSFR35_tmY1uQQoH1luj8ceD-n\"\n",
    "\n",
    "# 3.准备base URL(face detect) API测试接口的url\n",
    "base_url = \"https://api-cn.faceplusplus.com/facepp/v3/face/analyze\"\n",
    "\n",
    "# 4.请求方法：POST\n",
    "\n",
    "# 5.准备请求参数：payload\n",
    "payload = {\n",
    "    \"api_key\":API_Key,\n",
    "    \"api_secret\":API_Secret,\n",
    "    \"face_tokens\":'8c5a7bb6fa7ba70a3f86a100a44b919f',\n",
    "    \"image_url\":\"https://i0.hdslb.com/bfs/article/eec00424db25727d11a33dd7ebc6fa99d88e0d4a.jpg\",\n",
    "    \"return_landmark\":1,\n",
    "    \"return_attributes\":\"gender,age,smiling\"\n",
    "\n",
    "}\n",
    "# 6.请求数据\n",
    "\n",
    "r = requests.post(base_url,payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "77c92bd0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "103a0e61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'time_used': 240,\n",
       " 'request_id': '1648303565,b38ef759-bed8-4470-8ac2-377dd3535406',\n",
       " 'faces': [{'landmark': {'mouth_upper_lip_left_contour2': {'y': 227, 'x': 173},\n",
       "    'mouth_upper_lip_left_contour3': {'y': 229, 'x': 175},\n",
       "    'mouth_lower_lip_right_contour3': {'y': 237, 'x': 187},\n",
       "    'mouth_upper_lip_left_contour1': {'y': 227, 'x': 182},\n",
       "    'left_eye_upper_left_quarter': {'y': 185, 'x': 171},\n",
       "    'left_eyebrow_lower_middle': {'y': 179, 'x': 176},\n",
       "    'contour_chin': {'y': 255, 'x': 175},\n",
       "    'left_eyebrow_lower_left_quarter': {'y': 178, 'x': 169},\n",
       "    'right_eyebrow_lower_left_quarter': {'y': 188, 'x': 209},\n",
       "    'mouth_lower_lip_right_contour1': {'y': 233, 'x': 188},\n",
       "    'mouth_lower_lip_left_contour2': {'y': 231, 'x': 169},\n",
       "    'left_eye_bottom': {'y': 191, 'x': 174},\n",
       "    'mouth_lower_lip_bottom': {'y': 237, 'x': 182},\n",
       "    'contour_left9': {'y': 252, 'x': 164},\n",
       "    'mouth_lower_lip_top': {'y': 233, 'x': 183},\n",
       "    'right_eyebrow_upper_middle': {'y': 185, 'x': 214},\n",
       "    'right_eyebrow_left_corner': {'y': 187, 'x': 205},\n",
       "    'right_eye_bottom': {'y': 199, 'x': 208},\n",
       "    'contour_left7': {'y': 238, 'x': 149},\n",
       "    'contour_left6': {'y': 230, 'x': 143},\n",
       "    'contour_left5': {'y': 221, 'x': 139},\n",
       "    'contour_left4': {'y': 211, 'x': 138},\n",
       "    'contour_left3': {'y': 201, 'x': 138},\n",
       "    'contour_left2': {'y': 192, 'x': 139},\n",
       "    'contour_left1': {'y': 182, 'x': 141},\n",
       "    'left_eye_lower_left_quarter': {'y': 189, 'x': 169},\n",
       "    'mouth_upper_lip_top': {'y': 229, 'x': 185},\n",
       "    'contour_right3': {'y': 215, 'x': 214},\n",
       "    'contour_right2': {'y': 207, 'x': 216},\n",
       "    'mouth_left_corner': {'y': 226, 'x': 164},\n",
       "    'contour_right4': {'y': 222, 'x': 210},\n",
       "    'contour_right7': {'y': 241, 'x': 195},\n",
       "    'left_eyebrow_left_corner': {'y': 176, 'x': 161},\n",
       "    'nose_right': {'y': 220, 'x': 199},\n",
       "    'right_eye_upper_right_quarter': {'y': 195, 'x': 212},\n",
       "    'nose_tip': {'y': 216, 'x': 193},\n",
       "    'contour_right5': {'y': 229, 'x': 206},\n",
       "    'nose_contour_lower_middle': {'y': 223, 'x': 189},\n",
       "    'right_eye_top': {'y': 193, 'x': 209},\n",
       "    'mouth_lower_lip_left_contour3': {'y': 235, 'x': 175},\n",
       "    'right_eye_right_corner': {'y': 197, 'x': 214},\n",
       "    'right_eye_lower_right_quarter': {'y': 199, 'x': 212},\n",
       "    'mouth_upper_lip_right_contour2': {'y': 231, 'x': 192},\n",
       "    'right_eyebrow_lower_right_quarter': {'y': 189, 'x': 217},\n",
       "    'left_eye_left_corner': {'y': 187, 'x': 166},\n",
       "    'mouth_right_corner': {'y': 233, 'x': 193},\n",
       "    'mouth_upper_lip_right_contour3': {'y': 232, 'x': 189},\n",
       "    'right_eye_lower_left_quarter': {'y': 198, 'x': 205},\n",
       "    'left_eyebrow_right_corner': {'y': 185, 'x': 191},\n",
       "    'left_eyebrow_lower_right_quarter': {'y': 183, 'x': 184},\n",
       "    'right_eye_center': {'y': 197, 'x': 209},\n",
       "    'left_eye_upper_right_quarter': {'y': 189, 'x': 180},\n",
       "    'mouth_lower_lip_left_contour1': {'y': 230, 'x': 174},\n",
       "    'contour_left8': {'y': 246, 'x': 156},\n",
       "    'nose_left': {'y': 215, 'x': 178},\n",
       "    'right_eyebrow_lower_middle': {'y': 188, 'x': 214},\n",
       "    'left_eye_top': {'y': 186, 'x': 176},\n",
       "    'left_eye_center': {'y': 189, 'x': 175},\n",
       "    'left_eye_lower_right_quarter': {'y': 192, 'x': 179},\n",
       "    'nose_contour_right1': {'y': 197, 'x': 198},\n",
       "    'contour_right9': {'y': 253, 'x': 183},\n",
       "    'right_eye_left_corner': {'y': 197, 'x': 202},\n",
       "    'left_eyebrow_upper_left_quarter': {'y': 173, 'x': 170},\n",
       "    'left_eye_pupil': {'y': 188, 'x': 175},\n",
       "    'right_eyebrow_upper_left_quarter': {'y': 185, 'x': 209},\n",
       "    'contour_right8': {'y': 247, 'x': 190},\n",
       "    'right_eyebrow_right_corner': {'y': 189, 'x': 221},\n",
       "    'right_eye_upper_left_quarter': {'y': 194, 'x': 205},\n",
       "    'left_eyebrow_upper_middle': {'y': 175, 'x': 178},\n",
       "    'right_eyebrow_upper_right_quarter': {'y': 186, 'x': 218},\n",
       "    'nose_contour_left1': {'y': 194, 'x': 188},\n",
       "    'nose_contour_left2': {'y': 210, 'x': 182},\n",
       "    'mouth_upper_lip_right_contour1': {'y': 229, 'x': 189},\n",
       "    'contour_right1': {'y': 199, 'x': 218},\n",
       "    'nose_contour_right2': {'y': 213, 'x': 198},\n",
       "    'mouth_lower_lip_right_contour2': {'y': 235, 'x': 190},\n",
       "    'contour_right6': {'y': 235, 'x': 201},\n",
       "    'nose_contour_right3': {'y': 222, 'x': 194},\n",
       "    'nose_contour_left3': {'y': 219, 'x': 184},\n",
       "    'left_eye_right_corner': {'y': 193, 'x': 183},\n",
       "    'left_eyebrow_upper_right_quarter': {'y': 178, 'x': 186},\n",
       "    'right_eye_pupil': {'y': 196, 'x': 208},\n",
       "    'mouth_upper_lip_bottom': {'y': 232, 'x': 184}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 22},\n",
       "    'smile': {'threshold': 50.0, 'value': 97.066}},\n",
       "   'face_rectangle': {'width': 80, 'top': 174, 'left': 135, 'height': 80},\n",
       "   'face_token': '8c5a7bb6fa7ba70a3f86a100a44b919f'}]}"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "597b4ee8",
   "metadata": {},
   "source": [
    "# 人脸对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "383d3903",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1.导入需要的requests模块\n",
    "import requests\n",
    "\n",
    "# 2.输入我们需要API（face++）网站注册的API_Key\\Secret\n",
    "\n",
    "API_Key = \"p1trKNavnFo86_pKDl5eiY2Z5Nhz_7SF\"\n",
    "API_Secret = \"5YkQz9wSFR35_tmY1uQQoH1luj8ceD-n\"\n",
    "\n",
    "# 3.准备base URL(face detect) API测试接口的url\n",
    "base_url = \"https://api-cn.faceplusplus.com/facepp/v3/detect\"\n",
    "\n",
    "# 4.请求方法：POST\n",
    "\n",
    "# 5.准备请求参数：payload\n",
    "payload = {\n",
    "    \"api_key\":API_Key,\n",
    "    \"api_secret\":API_Secret,\n",
    "    \"image_url\":\"https://i0.hdslb.com/bfs/article/eec00424db25727d11a33dd7ebc6fa99d88e0d4a.jpg\",\n",
    "    \"return_landmark\":1,\n",
    "    \"return_attributes\":\"gender,age,smiling\"\n",
    "\n",
    "}\n",
    "# 6.请求数据\n",
    "\n",
    "r = requests.post(base_url,payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "bded6d58",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "2634d8fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648304103,a03e3c84-e9b5-4dbf-90fd-19ad519637d7',\n",
       " 'time_used': 455,\n",
       " 'faces': [{'face_token': '53c03516956d93936f1cc30bbb966b21',\n",
       "   'face_rectangle': {'top': 174, 'left': 135, 'width': 80, 'height': 80},\n",
       "   'landmark': {'contour_chin': {'x': 176, 'y': 255},\n",
       "    'contour_left1': {'x': 141, 'y': 182},\n",
       "    'contour_left2': {'x': 139, 'y': 192},\n",
       "    'contour_left3': {'x': 138, 'y': 202},\n",
       "    'contour_left4': {'x': 138, 'y': 212},\n",
       "    'contour_left5': {'x': 140, 'y': 221},\n",
       "    'contour_left6': {'x': 144, 'y': 230},\n",
       "    'contour_left7': {'x': 149, 'y': 239},\n",
       "    'contour_left8': {'x': 156, 'y': 246},\n",
       "    'contour_left9': {'x': 165, 'y': 253},\n",
       "    'contour_right1': {'x': 219, 'y': 198},\n",
       "    'contour_right2': {'x': 218, 'y': 206},\n",
       "    'contour_right3': {'x': 216, 'y': 214},\n",
       "    'contour_right4': {'x': 213, 'y': 222},\n",
       "    'contour_right5': {'x': 208, 'y': 229},\n",
       "    'contour_right6': {'x': 202, 'y': 235},\n",
       "    'contour_right7': {'x': 196, 'y': 241},\n",
       "    'contour_right8': {'x': 190, 'y': 247},\n",
       "    'contour_right9': {'x': 184, 'y': 253},\n",
       "    'left_eye_bottom': {'x': 173, 'y': 191},\n",
       "    'left_eye_center': {'x': 174, 'y': 189},\n",
       "    'left_eye_left_corner': {'x': 165, 'y': 187},\n",
       "    'left_eye_lower_left_quarter': {'x': 169, 'y': 189},\n",
       "    'left_eye_lower_right_quarter': {'x': 178, 'y': 191},\n",
       "    'left_eye_pupil': {'x': 172, 'y': 187},\n",
       "    'left_eye_right_corner': {'x': 182, 'y': 192},\n",
       "    'left_eye_top': {'x': 175, 'y': 185},\n",
       "    'left_eye_upper_left_quarter': {'x': 170, 'y': 185},\n",
       "    'left_eye_upper_right_quarter': {'x': 179, 'y': 188},\n",
       "    'left_eyebrow_left_corner': {'x': 161, 'y': 176},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 169, 'y': 178},\n",
       "    'left_eyebrow_lower_middle': {'x': 176, 'y': 180},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 184, 'y': 182},\n",
       "    'left_eyebrow_right_corner': {'x': 191, 'y': 184},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 169, 'y': 173},\n",
       "    'left_eyebrow_upper_middle': {'x': 178, 'y': 175},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 186, 'y': 178},\n",
       "    'mouth_left_corner': {'x': 166, 'y': 225},\n",
       "    'mouth_lower_lip_bottom': {'x': 183, 'y': 238},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 176, 'y': 229},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 171, 'y': 231},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 176, 'y': 235},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 190, 'y': 232},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 192, 'y': 235},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 188, 'y': 237},\n",
       "    'mouth_lower_lip_top': {'x': 185, 'y': 232},\n",
       "    'mouth_right_corner': {'x': 194, 'y': 231},\n",
       "    'mouth_upper_lip_bottom': {'x': 185, 'y': 232},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 183, 'y': 227},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 175, 'y': 226},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 176, 'y': 229},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 189, 'y': 229},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 192, 'y': 230},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 190, 'y': 232},\n",
       "    'mouth_upper_lip_top': {'x': 186, 'y': 229},\n",
       "    'nose_contour_left1': {'x': 188, 'y': 193},\n",
       "    'nose_contour_left2': {'x': 182, 'y': 209},\n",
       "    'nose_contour_left3': {'x': 183, 'y': 219},\n",
       "    'nose_contour_lower_middle': {'x': 189, 'y': 222},\n",
       "    'nose_contour_right1': {'x': 199, 'y': 196},\n",
       "    'nose_contour_right2': {'x': 198, 'y': 213},\n",
       "    'nose_contour_right3': {'x': 194, 'y': 221},\n",
       "    'nose_left': {'x': 178, 'y': 215},\n",
       "    'nose_right': {'x': 198, 'y': 219},\n",
       "    'nose_tip': {'x': 192, 'y': 217},\n",
       "    'right_eye_bottom': {'x': 209, 'y': 198},\n",
       "    'right_eye_center': {'x': 209, 'y': 196},\n",
       "    'right_eye_left_corner': {'x': 202, 'y': 196},\n",
       "    'right_eye_lower_left_quarter': {'x': 205, 'y': 197},\n",
       "    'right_eye_lower_right_quarter': {'x': 212, 'y': 198},\n",
       "    'right_eye_pupil': {'x': 206, 'y': 195},\n",
       "    'right_eye_right_corner': {'x': 215, 'y': 197},\n",
       "    'right_eye_top': {'x': 209, 'y': 193},\n",
       "    'right_eye_upper_left_quarter': {'x': 205, 'y': 194},\n",
       "    'right_eye_upper_right_quarter': {'x': 213, 'y': 194},\n",
       "    'right_eyebrow_left_corner': {'x': 204, 'y': 187},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 208, 'y': 188},\n",
       "    'right_eyebrow_lower_middle': {'x': 213, 'y': 188},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 216, 'y': 188},\n",
       "    'right_eyebrow_right_corner': {'x': 220, 'y': 189},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 208, 'y': 184},\n",
       "    'right_eyebrow_upper_middle': {'x': 213, 'y': 184},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 217, 'y': 185}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 22},\n",
       "    'smile': {'value': 97.828, 'threshold': 50.0}}},\n",
       "  {'face_token': '6f27221e17761b5708dddaa78249e6be',\n",
       "   'face_rectangle': {'top': 208, 'left': 831, 'width': 80, 'height': 80},\n",
       "   'landmark': {'contour_chin': {'x': 848, 'y': 280},\n",
       "    'contour_left1': {'x': 844, 'y': 209},\n",
       "    'contour_left2': {'x': 840, 'y': 217},\n",
       "    'contour_left3': {'x': 837, 'y': 224},\n",
       "    'contour_left4': {'x': 835, 'y': 232},\n",
       "    'contour_left5': {'x': 835, 'y': 241},\n",
       "    'contour_left6': {'x': 836, 'y': 249},\n",
       "    'contour_left7': {'x': 837, 'y': 257},\n",
       "    'contour_left8': {'x': 839, 'y': 266},\n",
       "    'contour_left9': {'x': 842, 'y': 274},\n",
       "    'contour_right1': {'x': 917, 'y': 238},\n",
       "    'contour_right2': {'x': 914, 'y': 247},\n",
       "    'contour_right3': {'x': 910, 'y': 256},\n",
       "    'contour_right4': {'x': 905, 'y': 265},\n",
       "    'contour_right5': {'x': 898, 'y': 273},\n",
       "    'contour_right6': {'x': 890, 'y': 278},\n",
       "    'contour_right7': {'x': 880, 'y': 282},\n",
       "    'contour_right8': {'x': 870, 'y': 283},\n",
       "    'contour_right9': {'x': 859, 'y': 283},\n",
       "    'left_eye_bottom': {'x': 855, 'y': 215},\n",
       "    'left_eye_center': {'x': 856, 'y': 214},\n",
       "    'left_eye_left_corner': {'x': 850, 'y': 211},\n",
       "    'left_eye_lower_left_quarter': {'x': 853, 'y': 213},\n",
       "    'left_eye_lower_right_quarter': {'x': 859, 'y': 216},\n",
       "    'left_eye_pupil': {'x': 858, 'y': 214},\n",
       "    'left_eye_right_corner': {'x': 862, 'y': 217},\n",
       "    'left_eye_top': {'x': 858, 'y': 211},\n",
       "    'left_eye_upper_left_quarter': {'x': 854, 'y': 210},\n",
       "    'left_eye_upper_right_quarter': {'x': 861, 'y': 213},\n",
       "    'left_eyebrow_left_corner': {'x': 849, 'y': 205},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 853, 'y': 205},\n",
       "    'left_eyebrow_lower_middle': {'x': 858, 'y': 207},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 862, 'y': 208},\n",
       "    'left_eyebrow_right_corner': {'x': 866, 'y': 210},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 854, 'y': 202},\n",
       "    'left_eyebrow_upper_middle': {'x': 859, 'y': 202},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 864, 'y': 205},\n",
       "    'mouth_left_corner': {'x': 846, 'y': 247},\n",
       "    'mouth_lower_lip_bottom': {'x': 856, 'y': 264},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 851, 'y': 254},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 847, 'y': 253},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 850, 'y': 259},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 868, 'y': 261},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 872, 'y': 264},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 864, 'y': 265},\n",
       "    'mouth_lower_lip_top': {'x': 857, 'y': 258},\n",
       "    'mouth_right_corner': {'x': 879, 'y': 260},\n",
       "    'mouth_upper_lip_bottom': {'x': 859, 'y': 255},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 856, 'y': 251},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 851, 'y': 249},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 852, 'y': 251},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 863, 'y': 253},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 871, 'y': 257},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 868, 'y': 258},\n",
       "    'mouth_upper_lip_top': {'x': 859, 'y': 253},\n",
       "    'nose_contour_left1': {'x': 866, 'y': 218},\n",
       "    'nose_contour_left2': {'x': 857, 'y': 233},\n",
       "    'nose_contour_left3': {'x': 855, 'y': 242},\n",
       "    'nose_contour_lower_middle': {'x': 859, 'y': 246},\n",
       "    'nose_contour_right1': {'x': 877, 'y': 223},\n",
       "    'nose_contour_right2': {'x': 873, 'y': 239},\n",
       "    'nose_contour_right3': {'x': 866, 'y': 247},\n",
       "    'nose_left': {'x': 853, 'y': 237},\n",
       "    'nose_right': {'x': 873, 'y': 247},\n",
       "    'nose_tip': {'x': 859, 'y': 240},\n",
       "    'right_eye_bottom': {'x': 890, 'y': 229},\n",
       "    'right_eye_center': {'x': 890, 'y': 227},\n",
       "    'right_eye_left_corner': {'x': 882, 'y': 225},\n",
       "    'right_eye_lower_left_quarter': {'x': 886, 'y': 227},\n",
       "    'right_eye_lower_right_quarter': {'x': 894, 'y': 229},\n",
       "    'right_eye_pupil': {'x': 892, 'y': 227},\n",
       "    'right_eye_right_corner': {'x': 898, 'y': 230},\n",
       "    'right_eye_top': {'x': 891, 'y': 224},\n",
       "    'right_eye_upper_left_quarter': {'x': 886, 'y': 224},\n",
       "    'right_eye_upper_right_quarter': {'x': 895, 'y': 226},\n",
       "    'right_eyebrow_left_corner': {'x': 881, 'y': 218},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 887, 'y': 219},\n",
       "    'right_eyebrow_lower_middle': {'x': 894, 'y': 221},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 900, 'y': 223},\n",
       "    'right_eyebrow_right_corner': {'x': 906, 'y': 226},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 888, 'y': 215},\n",
       "    'right_eyebrow_upper_middle': {'x': 895, 'y': 217},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 902, 'y': 220}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 33},\n",
       "    'smile': {'value': 100.0, 'threshold': 50.0}}},\n",
       "  {'face_token': '4570b05f51743dfa2d7a145e5457a43e',\n",
       "   'face_rectangle': {'top': 204, 'left': 511, 'width': 79, 'height': 79},\n",
       "   'landmark': {'contour_chin': {'x': 539, 'y': 283},\n",
       "    'contour_left1': {'x': 518, 'y': 221},\n",
       "    'contour_left2': {'x': 516, 'y': 228},\n",
       "    'contour_left3': {'x': 515, 'y': 236},\n",
       "    'contour_left4': {'x': 516, 'y': 244},\n",
       "    'contour_left5': {'x': 517, 'y': 252},\n",
       "    'contour_left6': {'x': 519, 'y': 259},\n",
       "    'contour_left7': {'x': 522, 'y': 266},\n",
       "    'contour_left8': {'x': 526, 'y': 273},\n",
       "    'contour_left9': {'x': 531, 'y': 279},\n",
       "    'contour_right1': {'x': 586, 'y': 223},\n",
       "    'contour_right2': {'x': 586, 'y': 232},\n",
       "    'contour_right3': {'x': 585, 'y': 242},\n",
       "    'contour_right4': {'x': 584, 'y': 251},\n",
       "    'contour_right5': {'x': 581, 'y': 260},\n",
       "    'contour_right6': {'x': 575, 'y': 268},\n",
       "    'contour_right7': {'x': 568, 'y': 274},\n",
       "    'contour_right8': {'x': 559, 'y': 279},\n",
       "    'contour_right9': {'x': 549, 'y': 282},\n",
       "    'left_eye_bottom': {'x': 527, 'y': 221},\n",
       "    'left_eye_center': {'x': 528, 'y': 219},\n",
       "    'left_eye_left_corner': {'x': 521, 'y': 219},\n",
       "    'left_eye_lower_left_quarter': {'x': 524, 'y': 220},\n",
       "    'left_eye_lower_right_quarter': {'x': 531, 'y': 221},\n",
       "    'left_eye_pupil': {'x': 529, 'y': 218},\n",
       "    'left_eye_right_corner': {'x': 534, 'y': 220},\n",
       "    'left_eye_top': {'x': 527, 'y': 216},\n",
       "    'left_eye_upper_left_quarter': {'x': 524, 'y': 217},\n",
       "    'left_eye_upper_right_quarter': {'x': 531, 'y': 217},\n",
       "    'left_eyebrow_left_corner': {'x': 520, 'y': 208},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 523, 'y': 208},\n",
       "    'left_eyebrow_lower_middle': {'x': 527, 'y': 208},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 531, 'y': 209},\n",
       "    'left_eyebrow_right_corner': {'x': 536, 'y': 209},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 522, 'y': 204},\n",
       "    'left_eyebrow_upper_middle': {'x': 527, 'y': 204},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 532, 'y': 205},\n",
       "    'mouth_left_corner': {'x': 529, 'y': 252},\n",
       "    'mouth_lower_lip_bottom': {'x': 541, 'y': 264},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 534, 'y': 257},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 531, 'y': 257},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 535, 'y': 262},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 551, 'y': 258},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 556, 'y': 259},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 549, 'y': 263},\n",
       "    'mouth_lower_lip_top': {'x': 541, 'y': 259},\n",
       "    'mouth_right_corner': {'x': 560, 'y': 253},\n",
       "    'mouth_upper_lip_bottom': {'x': 541, 'y': 252},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 537, 'y': 249},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 532, 'y': 250},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 534, 'y': 252},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 544, 'y': 250},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 552, 'y': 251},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 550, 'y': 252},\n",
       "    'mouth_upper_lip_top': {'x': 541, 'y': 250},\n",
       "    'nose_contour_left1': {'x': 538, 'y': 221},\n",
       "    'nose_contour_left2': {'x': 534, 'y': 234},\n",
       "    'nose_contour_left3': {'x': 536, 'y': 241},\n",
       "    'nose_contour_lower_middle': {'x': 540, 'y': 243},\n",
       "    'nose_contour_right1': {'x': 547, 'y': 221},\n",
       "    'nose_contour_right2': {'x': 548, 'y': 235},\n",
       "    'nose_contour_right3': {'x': 545, 'y': 242},\n",
       "    'nose_left': {'x': 532, 'y': 239},\n",
       "    'nose_right': {'x': 550, 'y': 240},\n",
       "    'nose_tip': {'x': 539, 'y': 237},\n",
       "    'right_eye_bottom': {'x': 561, 'y': 222},\n",
       "    'right_eye_center': {'x': 561, 'y': 220},\n",
       "    'right_eye_left_corner': {'x': 553, 'y': 221},\n",
       "    'right_eye_lower_left_quarter': {'x': 557, 'y': 221},\n",
       "    'right_eye_lower_right_quarter': {'x': 565, 'y': 221},\n",
       "    'right_eye_pupil': {'x': 562, 'y': 219},\n",
       "    'right_eye_right_corner': {'x': 569, 'y': 221},\n",
       "    'right_eye_top': {'x': 561, 'y': 217},\n",
       "    'right_eye_upper_left_quarter': {'x': 557, 'y': 218},\n",
       "    'right_eye_upper_right_quarter': {'x': 565, 'y': 218},\n",
       "    'right_eyebrow_left_corner': {'x': 549, 'y': 209},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 556, 'y': 210},\n",
       "    'right_eyebrow_lower_middle': {'x': 563, 'y': 210},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 569, 'y': 210},\n",
       "    'right_eyebrow_right_corner': {'x': 575, 'y': 211},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 556, 'y': 205},\n",
       "    'right_eyebrow_upper_middle': {'x': 563, 'y': 205},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 570, 'y': 206}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 23},\n",
       "    'smile': {'value': 100.0, 'threshold': 50.0}}},\n",
       "  {'face_token': '4929b4c5df6da1dd08cc45dc448f0ea6',\n",
       "   'face_rectangle': {'top': 186, 'left': 691, 'width': 79, 'height': 79},\n",
       "   'landmark': {'contour_chin': {'x': 726, 'y': 266},\n",
       "    'contour_left1': {'x': 689, 'y': 210},\n",
       "    'contour_left2': {'x': 689, 'y': 218},\n",
       "    'contour_left3': {'x': 690, 'y': 225},\n",
       "    'contour_left4': {'x': 693, 'y': 233},\n",
       "    'contour_left5': {'x': 697, 'y': 239},\n",
       "    'contour_left6': {'x': 701, 'y': 246},\n",
       "    'contour_left7': {'x': 707, 'y': 252},\n",
       "    'contour_left8': {'x': 712, 'y': 257},\n",
       "    'contour_left9': {'x': 717, 'y': 263},\n",
       "    'contour_right1': {'x': 765, 'y': 196},\n",
       "    'contour_right2': {'x': 767, 'y': 206},\n",
       "    'contour_right3': {'x': 768, 'y': 216},\n",
       "    'contour_right4': {'x': 768, 'y': 226},\n",
       "    'contour_right5': {'x': 766, 'y': 235},\n",
       "    'contour_right6': {'x': 762, 'y': 244},\n",
       "    'contour_right7': {'x': 755, 'y': 252},\n",
       "    'contour_right8': {'x': 746, 'y': 258},\n",
       "    'contour_right9': {'x': 737, 'y': 264},\n",
       "    'left_eye_bottom': {'x': 700, 'y': 210},\n",
       "    'left_eye_center': {'x': 700, 'y': 208},\n",
       "    'left_eye_left_corner': {'x': 693, 'y': 209},\n",
       "    'left_eye_lower_left_quarter': {'x': 696, 'y': 210},\n",
       "    'left_eye_lower_right_quarter': {'x': 703, 'y': 210},\n",
       "    'left_eye_pupil': {'x': 702, 'y': 207},\n",
       "    'left_eye_right_corner': {'x': 707, 'y': 209},\n",
       "    'left_eye_top': {'x': 699, 'y': 205},\n",
       "    'left_eye_upper_left_quarter': {'x': 696, 'y': 206},\n",
       "    'left_eye_upper_right_quarter': {'x': 704, 'y': 206},\n",
       "    'left_eyebrow_left_corner': {'x': 688, 'y': 199},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 691, 'y': 199},\n",
       "    'left_eyebrow_lower_middle': {'x': 695, 'y': 198},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 700, 'y': 198},\n",
       "    'left_eyebrow_right_corner': {'x': 704, 'y': 197},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 690, 'y': 195},\n",
       "    'left_eyebrow_upper_middle': {'x': 695, 'y': 194},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 700, 'y': 195},\n",
       "    'mouth_left_corner': {'x': 711, 'y': 241},\n",
       "    'mouth_lower_lip_bottom': {'x': 722, 'y': 250},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 716, 'y': 244},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 713, 'y': 245},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 717, 'y': 249},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 731, 'y': 243},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 735, 'y': 244},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 730, 'y': 248},\n",
       "    'mouth_lower_lip_top': {'x': 722, 'y': 246},\n",
       "    'mouth_right_corner': {'x': 739, 'y': 238},\n",
       "    'mouth_upper_lip_bottom': {'x': 721, 'y': 242},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 718, 'y': 240},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 714, 'y': 240},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 715, 'y': 241},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 723, 'y': 239},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 731, 'y': 239},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 730, 'y': 240},\n",
       "    'mouth_upper_lip_top': {'x': 720, 'y': 240},\n",
       "    'nose_contour_left1': {'x': 710, 'y': 208},\n",
       "    'nose_contour_left2': {'x': 710, 'y': 223},\n",
       "    'nose_contour_left3': {'x': 713, 'y': 232},\n",
       "    'nose_contour_lower_middle': {'x': 718, 'y': 233},\n",
       "    'nose_contour_right1': {'x': 720, 'y': 206},\n",
       "    'nose_contour_right2': {'x': 725, 'y': 221},\n",
       "    'nose_contour_right3': {'x': 724, 'y': 230},\n",
       "    'nose_left': {'x': 708, 'y': 229},\n",
       "    'nose_right': {'x': 729, 'y': 227},\n",
       "    'nose_tip': {'x': 715, 'y': 227},\n",
       "    'right_eye_bottom': {'x': 734, 'y': 204},\n",
       "    'right_eye_center': {'x': 733, 'y': 202},\n",
       "    'right_eye_left_corner': {'x': 725, 'y': 205},\n",
       "    'right_eye_lower_left_quarter': {'x': 729, 'y': 205},\n",
       "    'right_eye_lower_right_quarter': {'x': 738, 'y': 202},\n",
       "    'right_eye_pupil': {'x': 734, 'y': 201},\n",
       "    'right_eye_right_corner': {'x': 742, 'y': 200},\n",
       "    'right_eye_top': {'x': 732, 'y': 198},\n",
       "    'right_eye_upper_left_quarter': {'x': 728, 'y': 201},\n",
       "    'right_eye_upper_right_quarter': {'x': 737, 'y': 198},\n",
       "    'right_eyebrow_left_corner': {'x': 719, 'y': 195},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 726, 'y': 194},\n",
       "    'right_eyebrow_lower_middle': {'x': 733, 'y': 191},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 740, 'y': 190},\n",
       "    'right_eyebrow_right_corner': {'x': 747, 'y': 191},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 725, 'y': 189},\n",
       "    'right_eyebrow_upper_middle': {'x': 732, 'y': 187},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 740, 'y': 186}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 26},\n",
       "    'smile': {'value': 99.49, 'threshold': 50.0}}},\n",
       "  {'face_token': 'bcc204d6fd8450902c6410e3774cce5f',\n",
       "   'face_rectangle': {'top': 209, 'left': 326, 'width': 78, 'height': 78},\n",
       "   'landmark': {'contour_chin': {'x': 378, 'y': 285},\n",
       "    'contour_left1': {'x': 324, 'y': 227},\n",
       "    'contour_left2': {'x': 325, 'y': 236},\n",
       "    'contour_left3': {'x': 327, 'y': 245},\n",
       "    'contour_left4': {'x': 330, 'y': 255},\n",
       "    'contour_left5': {'x': 334, 'y': 263},\n",
       "    'contour_left6': {'x': 340, 'y': 271},\n",
       "    'contour_left7': {'x': 348, 'y': 277},\n",
       "    'contour_left8': {'x': 357, 'y': 282},\n",
       "    'contour_left9': {'x': 367, 'y': 285},\n",
       "    'contour_right1': {'x': 401, 'y': 221},\n",
       "    'contour_right2': {'x': 402, 'y': 229},\n",
       "    'contour_right3': {'x': 403, 'y': 236},\n",
       "    'contour_right4': {'x': 402, 'y': 244},\n",
       "    'contour_right5': {'x': 401, 'y': 252},\n",
       "    'contour_right6': {'x': 398, 'y': 260},\n",
       "    'contour_right7': {'x': 394, 'y': 267},\n",
       "    'contour_right8': {'x': 390, 'y': 274},\n",
       "    'contour_right9': {'x': 386, 'y': 280},\n",
       "    'left_eye_bottom': {'x': 352, 'y': 226},\n",
       "    'left_eye_center': {'x': 353, 'y': 224},\n",
       "    'left_eye_left_corner': {'x': 345, 'y': 225},\n",
       "    'left_eye_lower_left_quarter': {'x': 348, 'y': 226},\n",
       "    'left_eye_lower_right_quarter': {'x': 357, 'y': 226},\n",
       "    'left_eye_pupil': {'x': 351, 'y': 223},\n",
       "    'left_eye_right_corner': {'x': 361, 'y': 225},\n",
       "    'left_eye_top': {'x': 353, 'y': 221},\n",
       "    'left_eye_upper_left_quarter': {'x': 348, 'y': 222},\n",
       "    'left_eye_upper_right_quarter': {'x': 357, 'y': 222},\n",
       "    'left_eyebrow_left_corner': {'x': 337, 'y': 219},\n",
       "    'left_eyebrow_lower_left_quarter': {'x': 344, 'y': 217},\n",
       "    'left_eyebrow_lower_middle': {'x': 351, 'y': 216},\n",
       "    'left_eyebrow_lower_right_quarter': {'x': 358, 'y': 216},\n",
       "    'left_eyebrow_right_corner': {'x': 365, 'y': 215},\n",
       "    'left_eyebrow_upper_left_quarter': {'x': 344, 'y': 213},\n",
       "    'left_eyebrow_upper_middle': {'x': 351, 'y': 211},\n",
       "    'left_eyebrow_upper_right_quarter': {'x': 359, 'y': 211},\n",
       "    'mouth_left_corner': {'x': 355, 'y': 259},\n",
       "    'mouth_lower_lip_bottom': {'x': 375, 'y': 269},\n",
       "    'mouth_lower_lip_left_contour1': {'x': 365, 'y': 263},\n",
       "    'mouth_lower_lip_left_contour2': {'x': 360, 'y': 264},\n",
       "    'mouth_lower_lip_left_contour3': {'x': 367, 'y': 268},\n",
       "    'mouth_lower_lip_right_contour1': {'x': 383, 'y': 260},\n",
       "    'mouth_lower_lip_right_contour2': {'x': 386, 'y': 261},\n",
       "    'mouth_lower_lip_right_contour3': {'x': 382, 'y': 266},\n",
       "    'mouth_lower_lip_top': {'x': 375, 'y': 263},\n",
       "    'mouth_right_corner': {'x': 388, 'y': 255},\n",
       "    'mouth_upper_lip_bottom': {'x': 375, 'y': 258},\n",
       "    'mouth_upper_lip_left_contour1': {'x': 372, 'y': 256},\n",
       "    'mouth_upper_lip_left_contour2': {'x': 364, 'y': 257},\n",
       "    'mouth_upper_lip_left_contour3': {'x': 365, 'y': 259},\n",
       "    'mouth_upper_lip_right_contour1': {'x': 378, 'y': 255},\n",
       "    'mouth_upper_lip_right_contour2': {'x': 384, 'y': 255},\n",
       "    'mouth_upper_lip_right_contour3': {'x': 382, 'y': 257},\n",
       "    'mouth_upper_lip_top': {'x': 375, 'y': 256},\n",
       "    'nose_contour_left1': {'x': 366, 'y': 225},\n",
       "    'nose_contour_left2': {'x': 366, 'y': 240},\n",
       "    'nose_contour_left3': {'x': 370, 'y': 249},\n",
       "    'nose_contour_lower_middle': {'x': 376, 'y': 250},\n",
       "    'nose_contour_right1': {'x': 378, 'y': 224},\n",
       "    'nose_contour_right2': {'x': 382, 'y': 239},\n",
       "    'nose_contour_right3': {'x': 381, 'y': 247},\n",
       "    'nose_left': {'x': 364, 'y': 246},\n",
       "    'nose_right': {'x': 384, 'y': 244},\n",
       "    'nose_tip': {'x': 376, 'y': 244},\n",
       "    'right_eye_bottom': {'x': 389, 'y': 223},\n",
       "    'right_eye_center': {'x': 389, 'y': 221},\n",
       "    'right_eye_left_corner': {'x': 381, 'y': 223},\n",
       "    'right_eye_lower_left_quarter': {'x': 385, 'y': 223},\n",
       "    'right_eye_lower_right_quarter': {'x': 393, 'y': 222},\n",
       "    'right_eye_pupil': {'x': 387, 'y': 221},\n",
       "    'right_eye_right_corner': {'x': 396, 'y': 221},\n",
       "    'right_eye_top': {'x': 388, 'y': 218},\n",
       "    'right_eye_upper_left_quarter': {'x': 384, 'y': 220},\n",
       "    'right_eye_upper_right_quarter': {'x': 393, 'y': 218},\n",
       "    'right_eyebrow_left_corner': {'x': 378, 'y': 215},\n",
       "    'right_eyebrow_lower_left_quarter': {'x': 384, 'y': 214},\n",
       "    'right_eyebrow_lower_middle': {'x': 389, 'y': 212},\n",
       "    'right_eyebrow_lower_right_quarter': {'x': 394, 'y': 212},\n",
       "    'right_eyebrow_right_corner': {'x': 399, 'y': 213},\n",
       "    'right_eyebrow_upper_left_quarter': {'x': 382, 'y': 210},\n",
       "    'right_eyebrow_upper_middle': {'x': 389, 'y': 208},\n",
       "    'right_eyebrow_upper_right_quarter': {'x': 395, 'y': 209}},\n",
       "   'attributes': {'gender': {'value': 'Female'},\n",
       "    'age': {'value': 24},\n",
       "    'smile': {'value': 100.0, 'threshold': 50.0}}}],\n",
       " 'image_id': 'd5c9PtbmX/SxMayu5Scqqg==',\n",
       " 'face_num': 5}"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "a0603a91",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 1.导入需要的requests模块\n",
    "import requests\n",
    "\n",
    "# 2.输入我们需要API（face++）网站注册的API_Key\\Secret\n",
    "\n",
    "API_Key = \"p1trKNavnFo86_pKDl5eiY2Z5Nhz_7SF\"\n",
    "API_Secret = \"5YkQz9wSFR35_tmY1uQQoH1luj8ceD-n\"\n",
    "\n",
    "# 3.准备base URL(face detect) API测试接口的url\n",
    "base_url = \"https://api-cn.faceplusplus.com/facepp/v3/compare\"\n",
    "\n",
    "# 4.请求方法：POST\n",
    "\n",
    "# 5.准备请求参数：payload\n",
    "payload = {\n",
    "    \"api_key\":API_Key,\n",
    "    \"api_secret\":API_Secret,\n",
    "    # 两个不同或者同一个人的两张不同照片对比是否为同一个人，按上面的方法找出facce_token\n",
    "    \"face_token1\":'8c5a7bb6fa7ba70a3f86a100a44b919f',\n",
    "    \"face_token2\": '53c03516956d93936f1cc30bbb966b21',\n",
    "    \"image_url\":\"https://i0.hdslb.com/bfs/article/eec00424db25727d11a33dd7ebc6fa99d88e0d4a.jpg\",\n",
    "    \"return_landmark\":1,\n",
    "    \"return_attributes\":\"gender,age,smiling\"\n",
    "\n",
    "}\n",
    "# 6.请求数据\n",
    "\n",
    "r = requests.post(base_url,payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "122aaf8a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "fdc0da0a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648304365,8cb4937c-c85b-422d-a6e7-913ce8493428',\n",
       " 'time_used': 431,\n",
       " 'confidence': 97.075,\n",
       " 'thresholds': {'1e-3': 62.327, '1e-4': 69.101, '1e-5': 73.975}}"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ded0e589",
   "metadata": {},
   "source": [
    "# 创建人脸库API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "19a33af4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "\n",
    "# 2.输入我们需要API（face++）网站注册的API_Key\\Secret\n",
    "\n",
    "API_Key = \"p1trKNavnFo86_pKDl5eiY2Z5Nhz_7SF\"\n",
    "API_Secret = \"5YkQz9wSFR35_tmY1uQQoH1luj8ceD-n\"\n",
    "\n",
    "# 3.准备base URL(face detect) API测试接口的url\n",
    "base_url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/create\"\n",
    "\n",
    "# 4.请求方法：POST\n",
    "\n",
    "# 5.准备请求参数：payload，face_tokens最多可以输入5个，先用人脸检索获取face_tokens\n",
    "payload = {\n",
    "    \"api_key\":API_Key,\n",
    "    \"api_secret\":API_Secret,\n",
    "    \"face_tokens\":\"53c03516956d93936f1cc30bbb966b21\",\n",
    "}\n",
    "# 6.请求数据\n",
    "\n",
    "r = requests.post(base_url,payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "d3c77960",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "5492a0e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faceset_token': '6b18a172af0f6887e6d5e62a15314788',\n",
       " 'time_used': 646,\n",
       " 'face_count': 1,\n",
       " 'face_added': 1,\n",
       " 'request_id': '1648305011,895bea25-d860-4961-befd-c4df4fa329a8',\n",
       " 'outer_id': '',\n",
       " 'failure_detail': []}"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过建立人脸库API可以获取人脸库faceset信息\n",
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "40f5e1c6",
   "metadata": {},
   "source": [
    "# 人脸搜索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "d41cf9e8",
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "\n",
    "# 2.输入我们需要API（face++）网站注册的API_Key\\Secret\n",
    "\n",
    "API_Key = \"p1trKNavnFo86_pKDl5eiY2Z5Nhz_7SF\"\n",
    "API_Secret = \"5YkQz9wSFR35_tmY1uQQoH1luj8ceD-n\"\n",
    "\n",
    "# 3.准备base URL(face detect) API测试接口的url\n",
    "base_url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/create\"\n",
    "\n",
    "# 4.请求方法：POST\n",
    "\n",
    "# 5.准备请求参数：payload,输入需要搜索的face_tokens,以及人脸库faceset地址\n",
    "payload = {\n",
    "    \"api_key\":API_Key,\n",
    "    \"api_secret\":API_Secret,\n",
    "    \"face_tokens\":\"53c03516956d93936f1cc30bbb966b21\",\n",
    "    \"faceset_token\":\"6b18a172af0f6887e6d5e62a15314788\"\n",
    "}\n",
    "# 6.请求数据\n",
    "\n",
    "r = requests.post(base_url,payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "1fc92102",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "20fdc2f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'faceset_token': 'b4f0790fcce1f0a03aa0515654f9244b',\n",
       " 'time_used': 611,\n",
       " 'face_count': 1,\n",
       " 'face_added': 1,\n",
       " 'request_id': '1648305148,ca5f0219-d3c0-49fa-99bf-0cb2dbf262a2',\n",
       " 'outer_id': '',\n",
       " 'failure_detail': []}"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "331b4dea",
   "metadata": {},
   "source": [
    "# 封装应用函数（内部使用的接口）\n",
    "## 人脸检测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "d1e7d372",
   "metadata": {},
   "outputs": [],
   "source": [
    "def face_detect(API_key,API_secret,image_url,landmark=None,attributes=None):\n",
    "    \"\"\"face++ 人脸检测\"\"\"\n",
    "    import requests\n",
    "    url = 'https://api-cn.faceplusplus.com/facepp/v3/detect'\n",
    "    payload ={\n",
    "        'api_key':API_key,\n",
    "        'api_secret':API_secret,\n",
    "        'image_url':image_url,\n",
    "        'return_landmark':landmark,\n",
    "        'return_attributes':attributes\n",
    "    }\n",
    "    r = requests.post(url,params=payload)\n",
    "    return r.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "e9fcf730",
   "metadata": {},
   "outputs": [],
   "source": [
    "face_a = face_detect('aZW8w-JCfLUxYnTwQQu_RKLAUduXKvTW','wmAcTGRDAkP1JB4zYe0H3Q15mn1UCMxC','http://thumb10.jfcdns.com/thumb/up/2017-8/201782115518958221215010_600_0.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "3c85b210",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'e6815c96e251e051db538da169e36330'"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "face_a['faces'][0]['face_token']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "bcfab608",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648305312,bc8d7799-0758-4bd9-826e-10013bd3d69e',\n",
       " 'time_used': 146,\n",
       " 'faces': [{'face_token': 'efdb2090b6e08da2c2d210f454e120de',\n",
       "   'face_rectangle': {'top': 132, 'left': 178, 'width': 174, 'height': 174}}],\n",
       " 'image_id': 'iGkOO0vIVdOtC8bDQWAVmA==',\n",
       " 'face_num': 1}"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "face_detect('aZW8w-JCfLUxYnTwQQu_RKLAUduXKvTW','wmAcTGRDAkP1JB4zYe0H3Q15mn1UCMxC','http://thumb10.jfcdns.com/thumb/up/2017-8/201782115518958221215010_600_0.jpg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dec04f62",
   "metadata": {},
   "source": [
    "# 人脸分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "aee72be9",
   "metadata": {},
   "outputs": [],
   "source": [
    "def face_analyze(API_key,API_secret,face_tokens,return_landmark):\n",
    "    \"\"\"face++ 人脸检测\"\"\"\n",
    "    import requests\n",
    "    url = 'https://api-cn.faceplusplus.com/facepp/v3/face/analyze'\n",
    "    payload = {\n",
    "    \"api_key\":API_Key,\n",
    "    \"api_secret\":API_Secret,\n",
    "    \"face_tokens\":face_token,\n",
    "    \"return_landmark\":landmark,\n",
    "    \"return_attributes\":attributes\n",
    "}\n",
    "    r = requests.post(url,params=payload)\n",
    "    return r.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "6f1346bc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648305370,bad498be-f9d0-4ce3-8f21-3abeed79e4b7',\n",
       " 'time_used': 47,\n",
       " 'error_message': 'INVALID_IMAGE_URL'}"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "face_detect('aZW8w-JCfLUxYnTwQQu_RKLAUduXKvTW','wmAcTGRDAkP1JB4zYe0H3Q15mn1UCMxC','03bc6283e623e5c207a603b9f400534e','1')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "19a6514f",
   "metadata": {},
   "source": [
    "# 人脸对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "c8c4fe16",
   "metadata": {},
   "outputs": [],
   "source": [
    "def face_compare(API_key,API_secret,face_token1,face_token2):\n",
    "    \"\"\"face++ 人脸检测\"\"\"\n",
    "    import requests\n",
    "    url = 'https://api-cn.faceplusplus.com/facepp/v3/compare'\n",
    "    payload = {\n",
    "    \"api_key\":API_Key,\n",
    "    \"api_secret\":API_Secret,\n",
    "    \"face_token1\":face_token1,\n",
    "    \"face_token2\":face_token2,\n",
    "}\n",
    "    r = requests.post(url,params=payload)\n",
    "    return r.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "b83421b7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648305647,008aed56-90cb-4fb6-9814-f1362c0a734f',\n",
       " 'time_used': 64,\n",
       " 'error_message': \"INVALID_FACE_TOKEN: ['03bc6283e623e5c207a603b9f400534e']\"}"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "face_compare('aZW8w-JCfLUxYnTwQQu_RKLAUduXKvTW','wmAcTGRDAkP1JB4zYe0H3Q15mn1UCMxC','03bc6283e623e5c207a603b9f400534e','f245e3933579c4a851dbae3f49fd3119')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "07db2a8b",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
